package com.huike.dao;

import com.huike.po.Employee;
import com.huike.po.Part;
import com.huike.po.UserDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
/**
 * 部门相关的dao操作
 */
public interface PartDAO {
    /**
     * 员工相关
     */
    //根据编号查询员工信息
    public Employee selectEmployeeByID(@Param("employee_id") int id);
    //根据账号查询员工信息
    public Employee selectEmployeeByAccount(@Param("acoount") String account);
    //根据部门获取员工列表
    public List<Employee> selectEmployeeListByPart(@Param("part_id") int partId);
    //修改员工部门(相当于向部门中添加员工)
    public boolean updateEmployeePart(@Param("employee_id") int employeeId, @Param("part_id") int partId);
    //将员工部门置空（相当于从某个部门中删除员工）
    public boolean deleteEmployeePart(@Param("employee_id") int employeeId);
    /**
     * 部门相关
     */
    //新增部门
    public boolean insertPart(@Param("part_id") int partId,@Param("part_name") String partName, @Param("manager_id") int managerId, @Param("part_level") int partLevel);
    //删除部门
    public boolean deletePart(@Param("part_id") int id);
    //查询所有部门信息
    public List<Part> selectAllPartInfo();
    //根据部门名称模糊查询部门信息
    public List<Part> selectPartByName(@Param("part_name") String name);
    //根据部门编号查询部门信息
    public Part selectPartById(@Param("part_id") int id);
    //修改部门名称
    public boolean updatePartName(@Param("part_id") int id, @Param("part_name") String name);
    //修改部门等级
    public boolean updatePartLevel(@Param("part_id") int id, @Param("part_level") int level);
    //修改部门经理
    public boolean updatePartManager(@Param("part_id") int id, @Param("manager_id") int managerId);
    //修改部门整体信息
    public boolean updatePartInfo(Part part);

    public UserDetail selectUserDetailByAccount(@Param("account") String account);
}
